2026-08-01 Using the niri wm on FreeBSD in 2026
I happen to like using a window manager called Niri, however it seems FreeBSD is considered a lower tier supported platform. While there exists a port for Niri that is both buildable and installable for FreeBSD, there are some caveats. One of the caveats is something that folks experience when attempting to use FreeBSD as a daily driver hit is the after-install thousand papercuts problem(s).
This papercut problem manifests itself when attempting to actually use the port and package as normal and finds lots of small (or sometimes not small) gaps in how the software should work versus how it actually works (on FreeBSD).
An example that is probably the easiest to detect is when some program decides to shell out to another program and invokes /bin/bash in order to kick off the shell. On MacOS and Linux, this will work as /bin/bash exists. However, on FreeBSD bash is considered a ported package so will be located at /usr/local/bin/bash. However, if the port hardcodes this path rather than proper invocation, this will fail which requires patching the port to work on FreeBSD.
Niri in more recent versions suffers from this problem which has led me to switch my window manager on FreeBSD and make me a little sad that RIIR crowd usually get to proper FreeBSD support... later.
I stumbled across https://github.com/freebsdfixes/niri which should hopefully address this.
It carries a handful of patches that are needed to build and run niri on FreeBSD 15, plus a setup script, a launcher, and a long-form guide explaining why each change exists.
I haven't had time to sit down and kick the tires on this, but at least it is promising someone else is seeing the same thing (and even better, actioning on it).